Harness Engineering 到底是什么?概念、实战与争议,一次全部讲清楚

Harness Engineering 到底是什么?概念、实战与争议,一次全部讲清楚
Kook Up本文基于 YouTube 视频 整理,力求不遗漏任何细节。
一、背景:从 Prompt Engineering 到 Context Engineering 再到 Harness Engineering
继 Prompt Engineering、Context Engineering 之后,AI 圈最近又冒出了一个新名词——Harness Engineering。从 2025 年 2 月开始,这个词频繁出现:
- OpenAI 专门发文,讲他们如何用 Harness Engineering 在 5 个月内写了将近 100 万行代码;
- Anthropic 紧接着发文,分享自己如何使用精心设计的 Harness 架构来驱动 Agent 的开发应用;
- 连技术大牛 Martin Fowler 创立的技术网站 martinfowler.com 也开始公开讨论 Harness Engineering。
但与此同时,也有不少人认为这不过是个噱头,换汤不换药。本文就来把这个事情彻底搞明白。
二、前置概念:Prompt Engineering 与 Context Engineering
在讲 Harness Engineering 之前,先回顾它的两个”前任”。
2.1 Prompt Engineering:怎么把话说清楚
Prompt = 用户发给大模型的话。Prompt Engineering 就是一门研究怎么把这句话说清楚的技术。
举例:向大模型发问”帮我的猫起个名字”,大模型可能回答”花花””小白”——但这些名字可能都不满意,因为你家的猫是橘色的,”花花”和”小白”都与橘色冲突。
问题出在 Prompt 上——没有给大模型充足的信息。按照 Prompt Engineering 的理念,重新设计 Prompt:
帮我的橘色小猫起名,两个字,需要体现出它活泼爱玩的性格
大模型就能给出更贴切的名字,比如”橘宝”(橘色的大活宝)、”橙豆”(橙色的小豆子,小豆子掉地上蹦蹦跳跳,也体现活泼性格)。
Prompt Engineering 本质:调整大模型提示词的技术。如今已很少被单独提起——一方面门槛太低,另一方面模型本身能力变强,很多时候不需要在 Prompt 上调来调去。
2.2 Context Engineering:怎么给信息
继续用小猫举例:拿到名字后继续跟大模型聊天,问”那它平时吃什么好呢?”——这个就是新的 Prompt。但此时发给大模型的不仅有这个 Prompt,还有之前的对话历史,这样大模型才知道新问题里的”它”指代的是什么。
无论是 Prompt 还是对话历史,都是大模型所接收到的信息,统称为 Context。Context 还包含工具列表、Skill 列表等。
Context 有容量上限,所以不可能无止境地往里塞东西,需要精心设计 Context 里面的内容——这就是 Context Engineering。
Context Engineering 的经典方法:
- 上下文压缩:当对话历史超过某个阈值时,对之前的对话历史做总结,防止 Context 内容过多影响回答效果;
- 动态检索外部资料;
- 渐进式披露;
- ……等等。
Context Engineering 虽然能整活,但效果有一定上限。为了进一步榨干大模型的潜力,AI 圈又整出了新花样——Harness Engineering。
三、Harness Engineering 是什么
3.1 从”马具”说起
Harness 这个词的本意是马具——套在马身上用来控制马的那些装备,比如缰绳、头套等。虽然马非常强大,但必须借助马具的力量来限制马的活动,才能让马为人类所用。
3.2 类比到 AI 领域
graph LR
subgraph 现实世界
Horse["马(强大但不受控)"]
Harness1["马鞍+缰绳(马具/Harness)"]
Horse --- Harness1
end
subgraph AI领域
Model["大模型(强大但会幻觉/发散)"]
Harness2["Harness(控制系统)"]
Model --- Harness2
end
Horse -.类比.-> Model
Harness1 -.类比.-> Harness2
- 脱掉马具的马 → 大模型(特别强,但不对它加以干预就会像脱缰野马一样发散思维,甚至产生严重幻觉,无法稳定给出想要的结果);
- 马具 → 用来控制大模型的系统,即 Harness。
3.3 核心公式
$$\text{Harness} = \text{Agent} - \text{Model}$$
一个完整的 Agent 减去里面的大模型,剩下的所有东西都是 Harness。
⚠️ 注意:Harness Engineering 是非常新的概念,目前业界还没有形成严格的定义,这个公式只是大多数人比较认可的说法,并非严格的学术定义。
3.4 具体例子:Claude Code
在 Claude Code 里面,所有不属于 Claude 模型的部分都是 Harness,比如:
- 写在
CLAUDE.md里面那些大模型要遵循的规则; - Claude Code 可以使用的工具;
- 定时调度机制;
- ……等等。
总而言之:只要不是模型,都可以将它视为 Harness 的一部分。
3.5 Harness Engineering 的定义
Harness Engineering = 一门专门研究如何构建与设计 Harness 的技术。换句话说:除了大模型本身不研究,别的什么都研究。
它不再是紧紧盯着模型输入的那点提示词或上下文,而是站在更高的系统层面上,研究怎么给大模型设计一套可以稳定运行的系统,让大模型踏踏实实地为人类做事。
3.6 三者关系:层层递进
graph TB
PE["Prompt Engineering\n研究:怎么问问题\n范围:如何组织 Prompt"]
CE["Context Engineering\n研究:怎么给信息\n范围:Prompt + 对话历史 + 工具列表 + ..."]
HE["Harness Engineering\n研究:怎么搭系统\n范围:Agent 中除模型外的一切"]
PE -->|"研究范围扩大"| CE
CE -->|"研究范围再扩大"| HE
style PE fill:#e8f5e9
style CE fill:#e3f2fd
style HE fill:#fce4ec
| 层级 | 关注问题 | 研究范围 |
|---|---|---|
| Prompt Engineering | 怎么问问题 | 如何组织 Prompt,把话说得更清楚、更准确 |
| Context Engineering | 怎么给信息 | 最合适的时机把最合适的内容放到 Context 里(含 Prompt、对话历史、工具列表等) |
| Harness Engineering | 怎么搭系统 | 围绕大模型搭建完整可靠的 Agent(权限管控、工具管理等) |
四、OpenAI 的 Harness Engineering 实战
4.1 疯狂实验:AI 从零写一个生产系统
2025 年 8 月,OpenAI 内部启动了一个疯狂的实验:用 AI 从零开始写一个真实的软件产品,全程不允许工程师手写一行代码。
产品的所有组成部分都由 AI 生成,包括:
- 业务逻辑
- 测试
- CI 配置
- 文档
- 内部工具
靠着 AI,项目代码规模直接干到了将近 100 万行,而且这是一个真正在线上跑、有真实用户的生产系统。总体耗时只用了 5 个月左右,团队规模一开始 3 个人主导,后来扩张到 7 个人。算下来开发效率差不多是纯人工的 10 倍。
4.2 实验一开始并不顺利
有意思的是,实验一开始的进展并不顺利——不是因为大模型不够聪明,而是因为 Harness 没有搭建好。
早期阶段,团队只是简单地把任务交给 Codex(OpenAI 的编程 Agent),然后让 Codex 自己去写代码。但结果很差:代码质量低、经常偏离需求、甚至产生幻觉。团队反复尝试调整 Prompt,但效果始终不理想。
关键转折点:团队意识到问题不在 Prompt,而在于整个系统设计。他们需要围绕 Codex 搭建一套完整的支撑体系——这就是 Harness。
4.3 OpenAI 的 Harness 设计
OpenAI 围绕 Codex 搭建了以下关键 Harness 组件:
graph TB
subgraph "OpenAI 的 Harness 架构"
A["AGENTS.md\n项目规范文件"]
B["代码质量检查\nLinter + Type Checker"]
C["自动化测试\n测试驱动开发"]
D["CI/CD 流水线\n持续集成/部署"]
E["权限管控\n沙箱与安全边界"]
F["文档生成\n自动维护文档"]
end
Codex["Codex(大模型)"]
A --> Codex
B --> Codex
C --> Codex
D --> Codex
E --> Codex
F --> Codex
style Codex fill:#fce4ec
4.3.1 AGENTS.md:项目规范文件
OpenAI 为每个项目创建了一个 AGENTS.md 文件,里面写满了项目级别的规范,包括:
- 代码风格要求
- 架构决策
- 依赖管理策略
- 测试要求
- ……等等
这个文件就像给 Codex 定的”家规”,让它在写代码时有据可依,而不是随意发挥。
4.3.2 代码质量检查(Linter + Type Checker)
OpenAI 在 Harness 中集成了严格的代码检查工具。每次 Codex 写完代码,Linter 和 Type Checker 就会自动检查代码质量。如果发现问题,就会把错误信息反馈给 Codex,让它自动修复。
这个机制非常关键——它相当于给 Codex 装上了一面”镜子”,让它能看到自己代码的问题并自我纠正,而不是把错误留到后面。
4.3.3 自动化测试
OpenAI 采用了**测试驱动开发(TDD)**的方式:先让 Codex 写测试用例,再让它写实现代码。这样每次代码变更都能通过测试来验证正确性。
4.3.4 CI/CD 流水线
完整的持续集成和持续部署流水线,确保每次代码提交都经过完整的验证流程。
4.3.5 权限管控
沙箱机制和安全边界,限制 Codex 的操作范围,防止它做出破坏性的操作。
4.4 效果:从混乱到高效
搭建好 Harness 之后,Codex 的表现发生了质变:
- 代码质量大幅提升
- 需求偏离的情况显著减少
- 幻觉问题得到有效控制
- 开发效率达到纯人工的 10 倍
OpenAI 在文章中总结道:Harness Engineering 的核心不在于让模型更聪明,而在于给模型创造一个能让它稳定发挥的环境。
五、Anthropic 的 Harness Engineering 实战
5.1 核心架构:Planner + Generator + Evaluator
Anthropic 提出了一套经典的三 Agent 架构:
graph LR
Input["需求输入"] --> Planner
Planner["Planner(规划 Agent)\n拆解任务为功能点"] --> Generator
Generator["Generator(生成 Agent)\n逐个功能点实现代码"] --> Evaluator
Evaluator["Evaluator(评估 Agent)\n检查代码质量与正确性"] -->|"不通过"| Generator
Evaluator -->|"通过"| Output["产出"]
style Planner fill:#e8f5e9
style Generator fill:#e3f2fd
style Evaluator fill:#fce4ec
5.1.1 Planner(规划 Agent)
负责将大任务拆解为一系列功能点(feature),形成执行计划。
5.1.2 Generator(生成 Agent)
根据 Planner 的计划,逐个功能点实现代码。
5.1.3 Evaluator(评估 Agent)
对 Generator 产出的代码进行质量评估和正确性检查。如果不通过,就反馈给 Generator 重新生成;如果通过,则产出最终结果。
5.2 具体实践细节
5.2.1 上下文焦虑问题
问题:Sonnet 4.5 存在”上下文焦虑”——当上下文过长时,模型会急于结束任务,以更少的 token 完成交付,影响最终质量。
Harness Engineering 解决方案:Anthropic 使用了上下文重置技术来解决这个问题——在上下文过长时,对上下文进行重置或压缩,让模型重新聚焦。
后续演进:当模型升级到更强的 Opus 4.5 后,这种现象被大幅缓解,因为 Opus 4.5 没有明显的上下文焦虑问题了,也就不怎么需要这方面的 Harness 设计了。
5.2.2 长任务执行效果差
问题:在长任务中,Generator 容易偏离轨道或遗漏功能点。
Harness Engineering 解决方案:Anthropic 在提示词里面强制 Generator 每次只选取一个功能点,做完一个再做下一个,确保整个产品开发流程稳步向前推进。Evaluator 也对每个功能点分别评估。
graph TB
subgraph "早期方案(逐个功能点执行)"
direction LR
P1["功能点1"] --> G1["生成"] --> E1["评估"]
P2["功能点2"] --> G2["生成"] --> E2["评估"]
P3["功能点3"] --> G3["生成"] --> E3["评估"]
end
subgraph "后期方案(Opus 4.6 全局统筹)"
direction LR
All["所有功能点"] --> Gen["Generator\n自主决定顺序"] --> Eval["Evaluator\n评估最终产出"]
end
后续演进:用到更强的 Opus 4.6 之后,这种强制分步执行的机制就不需要了——Opus 4.6 的全局统筹能力够强,可以一次把所有功能点都拿过来,自己决定先做哪个再做哪个,稳步推进,不需要别人对它的执行流程指指点点。Evaluator 也直接评估最终产出就可以了,不需要再分功能点评估。
5.3 Anthropic 的 Harness 设计文章
Anthropic 发了两篇重要文章:
- Effective Harnesses for Long-Running Agents(2024 年 11 月)——讨论如何为长时间运行的 Agent 设计有效的 Harness;
- Harness Design for Long-Running Application Development(2025 年 3 月 24 日)——拿出了 Planner、Generator 和 Evaluator 的经典架构。
值得注意的是,Anthropic 自己比较克制,通篇依然只用了 Harness 这个名词,并没有生搬硬套 Harness Engineering 这个刚刚炒热的新词。但在当时的氛围下,整个 AI 圈心照不宣,直接就把这套三 Agent 架构当成了 Harness Engineering 的教科书级案例。
六、Harness Engineering 的来源与传播
6.1 Harness 这个词本身并不新
单就 Harness 这个词来说,它并不算是一个彻头彻尾的新词。一般大家用它来指代为了支持某个功能所做的一套框架。
- 传统软件测试领域:有 Test Harness 的概念——为了支持测试代码运行而做的一套框架(包含测试运行器、测试环境等);
- AI 领域:开源项目 lm-evaluation-harness——为了支持模型效果评估而做的一套框架;
- Anthropic 去年 11 月的文章:Effective Harnesses for Long-Running Agents——Harness 代表为了支持 Agent 长时间运行而做的一套框架。
所以 Harness 这个概念一直都在,大家也都在默默用,谁也没觉得这是个需要大吹特吹的新概念。
6.2 “Harness Engineering” 这个组合词的诞生
Harness Engineering 把这两个词组合在一起,是最近才发生的事。
timeline
title Harness Engineering 传播时间线
2025-02-05 : Mitchell Hashimoto 发表 My AI Adoption Journey 首次提出 Harness Engineering 一词
2025-02-11 : OpenAI 发文 Harness Engineering 引爆概念
2025-02-17 : martinfowler.com 发文 Harness Engineering First Thoughts
2025-03-10 : LangChain 发文 The Anatomy of an Agent Harness 首次明确给出公式 Agent = Model + Harness
2025-03-24 : Anthropic 发文 Harness Design for Long-Running Application Development
6.2.1 起点:Mitchell Hashimoto(2025 年 2 月 5 日)
目前比较公认的起点是 Mitchell Hashimoto 的博客文章 “My AI Adoption Journey”。Mitchell Hashimoto 在海外技术圈是响当当的人物,很多大公司的底层工具都是他做的。
他在博客里写道:
我也不知道业界有没有公认的叫法,我就姑且管它叫 Harness Engineering。它的核心理念就是:只要 Agent 犯了错,你就去改造系统,让它绝不再犯同样的错。 要是有更好的词,我随时改口。
所以这个词的起点其实非常朴素,甚至带着点随意,跟后来大家讨论的宏大概念还是有区别的。
6.2.2 引爆:OpenAI(2025 年 2 月 11 日)
真正引爆这个概念的是 OpenAI 发的那篇 Harness Engineering 文章。这篇文章信息量极大,迅速在业界引起了巨大反响。
耐人寻味的细节(martinfowler.com 文章指出):虽然 OpenAI 这篇文章的标题有 Harness Engineering 这两个词,但如果你仔细去翻 OpenAI 的文章,正文里其实只提了一次 Harness 这个词。因此推测 OpenAI 搞不好就是受了 Mitchell Hashimoto 的启发,事后才临时把 Harness Engineering 这个词放到了标题里面。
6.2.3 跟进讨论:martinfowler.com(2025 年 2 月 17 日)
仅仅 6 天后,软件工程界鼎鼎大名的 Martin Fowler 网站(martinfowler.com)就发了一篇文章,作者是 Thoughtworks 里一位非常资深的工程师,文章标题叫 Harness Engineering - First Thoughts——就是她读完 OpenAI 那篇文章之后的第一反应。作为顶级技术博客,这篇文章一发出来自然就在圈内引发了广泛讨论。
她在文章里还点出了一个很耐人寻味的细节:虽然 OpenAI 文章标题有 Harness Engineering,但正文里其实只提了一次 Harness 这个词。
6.2.4 LangChain(2025 年 3 月 10 日)
LangChain 发了一篇文章叫 The Anatomy of an Agent Harness,这篇文章第一次明确给出了关于 Harness 的公式:
$$\text{Agent} = \text{Model} + \text{Harness}$$
这其实就是前面聊过的那个公式的变体(Harness = Agent - Model),两个等式本质上是一回事。公式一出,概念就算定调了。
6.2.5 Anthropic(2025 年 3 月 24 日)
Anthropic 发了那篇 Harness 的文章,拿出了 Planner、Generator 和 Evaluator 的经典架构。虽然 Anthropic 自己比较克制,通篇依然只用了 Harness 这个名词,但在当时氛围下,整个 AI 圈心照不宣,直接就把这套三 Agent 架构当成了 Harness Engineering 的教科书级案例。
就这样,一传十,十传百,Harness Engineering 从一个人的私人说法,变成了大家都在用的词。
七、Harness Engineering 是不是噱头?
7.1 复盘:没有新技术
如果你复盘完这段历史,再仔细琢磨一下,就会发现一件非常微妙的事情——Harness Engineering 里用到的所有技术,竟然没有一个是新的。
你看前面讲的 Linter 代码检查、任务拆解规划、质量评估机制——这些东西其实早就有了,很多观众甚至都在做相关工作。Harness Engineering 真正做的,只是把这些技术重新组织了下,统一放到了一个新词下面。
换句话说,它提供的是一套新的系统思维框架,而不是发明了一批颠覆性的新技术。
7.2 怀疑论者的两大攻击点
攻击点一:没有新东西,全都是”新瓶装旧酒”
在这种情况下,特意造个新词到处宣传,可不就是噱头吗?
攻击点二:所有的 Harness Engineering 都迟早要被淘汰
怀疑论者认为,随着大模型自身能力的持续进化,今天看起来必不可少的这些 Harness 设计,未来很可能会被模型能力本身逐步吸收,最终变得不再需要。
而这种担忧,其实连 Anthropic 自己的文章里都有迹可循。 前面讲过的两个案例就是明证:
- 上下文焦虑:Sonnet 4.5 需要用 Harness Engineering(上下文重置)来解决,但 Opus 4.5 自身就没有这个问题了;
- 长任务执行:早期需要强制 Generator 逐个功能点执行,但 Opus 4.6 自己就能全局统筹,不需要外部约束了。
这恰恰印证了一个非常现实的趋势:模型越强,需要的 Harness 就越少。 大模型自身的进化,正在一口一口吃掉 Harness Engineering 的生存空间。
graph LR
Weak["弱模型\n需要大量 Harness\n约束+纠正+兜底"] -->|"模型变强"| Strong["强模型\n需要少量 Harness\n只需基础工具"] -->|"模型更强"| Super["超强模型\n只需最基础 Harness\n环境接口+基础设施"]
style Weak fill:#fce4ec
style Strong fill:#fff3e0
style Super fill:#e8f5e9
7.3 Anthropic 官方的态度
Anthropic 官方在文章里其实没那么悲观。他们认为,随着模型变强,Harness 的形态也会跟着进化,去解锁更复杂的任务——也就是说,Harness 只会变形,不会消失。
7.4 大胆推演:如果未来的模型真的强到离谱?
这并不是说未来连读写文件、联网搜索这种基础工具都不需要了,而是说,也许只要给大模型配置上最基础的 Harness,它自己就能把剩下 99% 的问题全搞定。真到了那一天,Harness Engineering 就不再是一门需要专门去钻研的技术了,它会退化成一个单纯的环境接口、一个底层基础设施。仔细想想,这件事发生的概率恐怕没有那么低。
7.5 最终判断
Harness Engineering 不是噱头,但应该也不是终局。
说它不是噱头,是因为它已经实实在在带来了效果——无论是 OpenAI 还是 Anthropic,都通过 Harness Engineering 把 Agent 的稳定性、自动化程度和生产力往前推了一大步,这些都是可以被验证的工程成果,而不是概念炒作。
当然也有人会说它不过是”新瓶装旧酒”,用的都是老技术。但问题在于,工程领域真正的进步,往往不在于发明了什么新技术,而在于有没有一套统一的框架,把这些零散的能力组织起来,变成可以系统设计、可以持续优化的工程方法。 Harness Engineering 的意义恰恰就在这里。
但不得不承认,Harness Engineering 大概率不是终局。 随着模型能力继续增强,今天这些用来约束模型、纠正模型、给模型兜底的系统设计,很可能会被模型自身逐步吸收。到那个时候,很多 Harness 可能会变得不再必要,这个词也许会慢慢淡出大家的视野。
所以更愿意把它看成一个过渡期的关键技术。它可能不是未来的终局答案,但它是当下最现实的答案——因为回到今天,模型依然会犯错,依然会幻觉,依然会在复杂任务中偏离轨道。在这种现实下,Harness Engineering 的重要性就不容忽视——谁能把 Harness 搭得更稳,谁就能更早把 AI 的能力转化成真正的生产力,从而从中受益。
八、相关文章链接
OpenAI:
Anthropic:
LangChain:
Mitchell Hashimoto:
martinfowler.com:




![[转]基于DeepSeek赋能运维场景探讨](https://myim.kandy.dpdns.org/tutu/Qexo/25/2/37547c7d0e251787a773cd1ad21da7fd.png)
